﻿using Styx;
using Styx.Common;
using Styx.Helpers;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;


namespace Paster.Shadow
{
    class ShadowSettings : Settings
    {
        public static readonly ShadowSettings myPrefs = new ShadowSettings();

        public ShadowSettings()
            : base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Routines/Settings/Paster/{0}/{1}/ShadowSettings.xml", StyxWoW.Me.RealmName, StyxWoW.Me.Name)))
        {
        }

        [Setting, DefaultValue(50)]
        [Category("Protection")]
        [DisplayName("Desperate Prayer HP %")]
        public int DesperatePrayerPrecent { get; set; }

        [Setting, DefaultValue(70)]
        [Category("Protection")]
        [DisplayName("Gift of the Naaru HP %")]
        public int NaaruPercent { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Protection")]
        [DisplayName("Power Word: Shield HP %")]
        public int PowerWordShieldPrecent { get; set; }

        [Setting, DefaultValue(45)]
        [Category("Protection")]
        [DisplayName("Healthstone HP %")]
        public int HealthstonePercent { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Dispel/Purify")]
        [DisplayName("Auto Dispel")]
        public bool AutoDispel { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Dispel/Purify")]
        [DisplayName("Auto Purify")]
        public bool AutoPurify { get; set; }

        [Setting, DefaultValue(0)]
        [Category("Buffs")]
        [DisplayName("Power Word: Fortitude")]
        [Description("0 = Manual | 1 = only Me | 2 = Everyone in Group")]
        public int BuffFortitude { get; set; }
        
        [Setting, DefaultValue(true)]
        [Category("Movement")]
        [DisplayName("Auto Movement")]
        public bool AutoMovement { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement")]
        [DisplayName("Auto Targeting")]
        public bool AutoTargeting { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement")]
        [DisplayName("Auto Facing")]
        public bool AutoFacing { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement in Group")]
        [DisplayName("Disable Auto Movement")]
        public bool AutoMovementDisable { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement in Group")]
        [DisplayName("Disable Auto Targeting")]
        public bool AutoTargetingDisable { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement in Group")]
        [DisplayName("Disable Auto Facing")]
        public bool AutoFacingDisable { get; set; }

    }
}
